Sección: Visu
SEC Visu //optional: yes, modifier: [UPDATE]
Toplevel_Tab; //optional: yes, type: bool
Embedded := [%PAGE_VISU%, <visu1>,...]; //optional: yes, type: VisuList
Embedded_Proxy := [%PAGE_VISU%, <visu1>,...]; //optional: yes, type: VisuList
Page =: [<visu1>, <visu2>,...]; //optional: yes, type: VisuList
SEC DefaultEmbeddings //optional: yes
SEC Embedding : <visu identifier> //optional: yes, modifier: [HIDE, UPDATE]
VisuName := <visu name>; //optional: no, type: literal
Target := <target name>; //optional: yes, type: literal
ProxyVisuName := <visu name>; //optional: yes, type: literal
LinkId := <linkID>; //optional: yes, type: literal
END_SEC
END_SEC
SEC Toplevel_Tab_Hotkey //optional: yes
Hotkey := <keycode>; //optional: no, type: literal
Modifiers := <modifier>; //optional: yes, modifier: [SHIFT, CONTROL, ALT]
END_SEC
END_SECLos detalles sobre la sintaxis de los tipos de definición se describen en la sección Declaración del módulo.
Toplevel_Tabdefine si la casilla de verificación Crear pestaña de nivel superior en el editor HMI está activado o desactivado por defecto.Pagedefine una lista de objetos de visualización disponibles para el módulo.Embeddeddefine una lista de objetos de visualización disponibles del submódulo que se integrarán en otras pantallas de visualización.Usando el marcador de posición
%PAGE_VISU%en lugar del nombre de la visualización, permite que las pantallas de visualización generadas se puedan incrustar opcionalmente en otras pantallas.Embedded_Proxydefine una lista de objetos de visualización disponibles del módulo. La lista sólo se utiliza si undecoupled modulese inserta en undecoupled sloty si no se crea debajo del controlador de su instancia de módulo padre (como proxy).Para módulos, que importan otro módulo, el marcador de posición
%NONE%se puede utilizar en lugar del nombre de la visualización. Esto hace que las visualizaciones importadas queden ocultas. Este enfoque es posible para la lista de pantallas de visualización, así como para las pantallas de visualización (proxy) integradas.Sección:
DefaultEmbeddings: Esta sección sirve para la especificación de incrustaciones predeterminadas, que luego aparecerán como una configuración previa en la IHM pestaña de un submódulo (similar a la sección "Default_Allocation", verSección: Tragamonedas). Las incrustaciones predeterminadas deseadas se describen en las subseccionesEmbedding.Requisito: El objeto de visualización especificado y el proxy deben estar disponibles en la lista de posibles incrustaciones para el módulo (ver arriba:
EmbeddedyEmbedded_Proxy).Sección:
Toplevel_Tab_Hotkey: Esta sección define una tecla de acceso rápido como configuración predeterminada para la página de nivel superior. Los atajos de teclado no deben usarse más de una vez. Esta configuración se puede ajustar en el editor de módulos en la IHM pestaña.
SEC Visu
Toplevel_Tab ;
Page := [VISU_CNC_Machine_1, VISU_CNC_Machine_2];
Embedded := [%PAGE_VISU%];
SEC DefaultEmbeddings
SEC Embedding : No1
VisuName := SubModule_Emb;
Target := '../../TopLevel_2';
END_SEC
SEC Embedding : No2
VisuName := SubModule_Emb_2;
//ProxyVisuName := SubModule_Emb_1;
Target := '';// leave empty for next ancestor
END_SEC
END_SEC
SEC Toplevel_Tab_Hotkey
Hotkey := T;
Modifiers := SHIFT | CONTROL;
END_SEC
END_SECEl nombre de visualización es el nombre del objeto de visualización respectivo (no distingue entre mayúsculas y minúsculas). El objeto de visualización debe estar en el mismo nivel jerárquico que el bloque de funciones del módulo.
Todos los objetos de visualización y los objetos de visualización incrustados pueden tener una variable VAR_IN_OUT con el nombre
inst, que puede ser del tipo del bloque de funciones del módulo o de una clase base. El nombre de la variable no distingue entre mayúsculas y minúsculas.VAR_IN_OUTinst : <MODULE_FB> ;END_VARComo alternativa a la opción descrita aquí con VAR_IN_OUT, también se puede utilizar una variable VAR_INPUT. Esta variable debe cumplir con los siguientes requisitos:
Nombre:
instTipo: interfaz que implementa el bloque de funciones del módulo
Los objetos de visualización incrustados pueden tener dos variables adicionales (los nombres de las variables no distinguen entre mayúsculas y minúsculas):
VAR_INPUTpaVisuFB : POINTER TO POINTER TO AC_Visu_Base ;iOwnFrameIndex : INT ;END_VAREstas variables deben definirse juntas; no está permitido definir uno sin el otro. Estas dos variables brindan a las visualizaciones incrustadas la capacidad de cambiar el marco central en la visualización de nivel superior.
paVisuFBes una matriz de punteros enAC_Visu_Base instances. Usar la variable de visualización globalCURRENTCLIENTIDpara acceder a la instancia correcta del cliente actual. El cambio de trama se realiza mediante una acción ST de la forma:paVisuFB[CURRENTCLIENTID]^.uiFrameIdx := iOwnFrameIndex ;iOwnFrameIndexes el índice que tiene la imagen de visualización del propio módulo en este marco de nivel superior. (Si el propio módulo no define una imagen de visualización este índice es -1.)Aparte de las variables mencionadas anteriormente, no se permiten otras variables VAR_INPUT, VAR_OUTPUT o VAR_INOUT.
los
AC_Visu_Baselas instancias proporcionan la función adicionalGetModuleFrameIndex. Esta función devuelve el índice de la pantalla de visualización (si está presente) en la visualización de nivel superior para una instancia de módulo (consulteIModuleenAC_Module_Base.library). Con esta función, puede saltar a cualquier pantalla de visualización en el árbol de instancias del módulo. Para habilitar también la navegación dentro del código de un módulo, el entorno del módulo (verIModuleenAC_Module_Base.library) posee un miembro,Environment.visus, que corresponde a lo mencionadopaVisuFBpuntero.
Sugerencia
Para poder utilizar la variable CURRENTCLIENTID, la biblioteca VisuGlobalClientManager (categoría "Becario|Visu") debe agregarse al proyecto.
La primera visualización se utilizará como configuración predeterminada.